FROM debian:13.2-slim
ENV TZ=Asia/Shanghai
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources && \
apt-get -y update && apt-get -y install python3 python3-dev python3-venv && \
python3 -m venv /opt/certbot/ && /opt/certbot/bin/pip install --upgrade pip && /opt/certbot/bin/pip install certbot certbot-nginx && \
ln -s /opt/certbot/bin/certbot /usr/bin/certbot && \
rm -rf /var/lib/apt/lists/*

# Web服务器从称为证书颁发机构（CA）的可信第三方获取证书
# Certbot易于使用的客户端，从Let's Encrypt(EFF、Mozilla和许多其他赞助商的联合项目)获取证书并将其部署到web服务器
# Certbot和Let's Encrypt使用简单的命令打开和管理HTTPS
# 使用Certbot和Let's Encrypt免费 
# Linux/BSD上root访问权限/Windows上管理员访问权限
# 端口80打开
# Certbot在以root权限运行时最有用，因为它可以自动为Apache和nginx配置TLS/SSL
# Certbot旨在直接在web服务器上运行，通常由系统管理员执行
# https://certbot.eff.org/instructions?ws=nginx&os=pip
# https://certbot.eff.org/instructions?ws=nginx&os=snap
# https://eff-certbot.readthedocs.io/en/stable/install.html
# docker build -t registry.cn-hangzhou.aliyuncs.com/xiaoyilin/certbot-pip:20251121 .
# docker run --name certbot --rm -it registry.cn-hangzhou.aliyuncs.com/xiaoyilin/certbot-pip:20251121 bash

# --nginx-server-root NGINX_SERVER_ROOT
# Nginx server root directory. (default: /etc/nginx or /usr/local/etc/nginx)
# certbot --nginx获取证书，并让Certbot自动编辑nginx配置以提供服务，只需一步即可打开HTTPS访问
# certbot --nginx -d ssl.xyl.com
# 只需获得一份证书手动更改nginx配置certbot certonly --nginx -d ssl.xyl.com
# 建议运行以下这将向默认crontab添加一个cron作业
# echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null


# Snap方式
# apt install nginx
# apt-get -y update && apt-get -y install snapd && snap install --classic certbot
# ln -s /snap/bin/certbot /usr/bin/certbot
# 设置自动续订
# Certbot软件包附带了一个cron作业或systemd计时器，可以在证书过期之前自动续订。除非更改配置，否则您不需要再次运行Certbot。
# 测试证书的自动续订certbot renew --dry-run
# 续订certbot的命令安装在以下位置之一
# /etc/crontab/
# /etc/cron.*/*
# systemctl list-timers


# https://www.ssllabs.com/ssltest/